package com.example.sprintboot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

/**
 * RestTemplate 配置类
 * 用于在Spring Boot中调用其他API
 */
@Configuration
public class RestTemplateConfig {

    /**
     * 配置 RestTemplate Bean
     * RestTemplate 是 Spring 提供的用于调用 HTTP 服务的客户端工具
     */
    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        // 设置请求工厂，配置超时时间
        restTemplate.setRequestFactory(clientHttpRequestFactory());
        return restTemplate;
    }

    /**
     * 配置 HTTP 请求工厂
     * 设置连接超时和读取超时时间
     */
    @Bean
    public ClientHttpRequestFactory clientHttpRequestFactory() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        // 连接超时时间（毫秒）
        factory.setConnectTimeout(5000);
        // 读取超时时间（毫秒）
        factory.setReadTimeout(10000);
        return factory;
    }
}

